package com.share.user.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.share.user.domain.UpdateUserLogin;
import com.share.user.domain.UserInfo;
import com.share.user.domain.UserCountVo;

/**
 * 用户Service接口
 *
 * @author atguigu
 * @date 2025-02-17
 */
public interface IUserInfoService extends IService<UserInfo>
{

    /**
     * 查询用户列表
     *
     * @param userInfo 用户
     * @return 用户集合
     */
    public List<UserInfo> selectUserInfoList(UserInfo userInfo);

    ////微信授权登录-远程调用
    UserInfo wxLogin(String code);

    Boolean isFreeDeposit();

    //统计2024年每个月注册人数
    //远程调用：统计用户注册数据
    Map<String, Object> getUserCount(String time);

    Boolean updateUserLogin(UpdateUserLogin updateUserLogin);

    /**
     * 查询用户
     *
     * @param id 用户主键
     * @return 用户
     */
    public UserInfo selectUserInfoById(Long id);


    /**
     * 更新用户押金状态
     *
     * @param userInfo 用户信息
     * @return 结果
     */
    public int updateUserDepositStatus(UserInfo userInfo);

    /**
     * 获取用户统计数据
     * @return Map包含以下数据：
     * totalCount: 用户总数
     * monthlyGrowth: 月增长率（百分比）
     */
    Map<String, Object> getUserStatistics();
}
